package com.example.gladiadores;

import java.util.ArrayList;

import JavaCode.Ciudad;
import JavaCode.Gladiador;
import JavaCode.Opciones;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.view.View.OnClickListener;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemSelectedListener;

public class ActivityespiarGladiadores extends Activity implements
		OnClickListener {

	private Gallery miGaleriaMercado;
	private ImageView imagenGladiadorMercado;
	private Button botonMercadoGladiador;
	private int numeroGladiador;
	private ListView listaMercado;
	private ImageAdapter info;
	private ArrayList<Gladiador> listaGladiadores;
	private ArrayList<Integer> spritesMercado;

	public String[] valorMercado = new String[] { "Nombre : ", "Tribu : ",
			"Corpulencia : ", "Vida : ", "Fuerza : ", "Destreza : ",
			"Agilidad : ", "Resistencia : ", "Ambidiestro : ",
			"Habilidad Espada : ", "Habilidad Lanza : ", "Habilidad Hacha : ",
			"Habilidad Escudo : ", "Habilidad Cuerpo a Cuerpo : " };

	@Override
	public void onCreate(Bundle icicle) {

		super.onCreate(icicle);
		requestWindowFeature(Window.FEATURE_NO_TITLE);

		spritesMercado = new ArrayList<Integer>();

		WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
		layoutParams.screenBrightness = Opciones.getInstance()
				.getValorBarraLuz();
		getWindow().setAttributes(layoutParams);

		setContentView(R.layout.espiargladiadores);
		listaMercado = (ListView) findViewById(R.id.listaEspiaGladiadores);
		listaMercado.setDivider(null);
		listaMercado.setDividerHeight(0);

		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
				android.R.layout.simple_list_item_1, android.R.id.text1,
				valorMercado);

		listaMercado.setAdapter(adapter);
		miGaleriaMercado = (Gallery) findViewById(R.id.miGaleriaEspiaGladiadores);
		imagenGladiadorMercado = (ImageView) findViewById(R.id.imagenGladiadorEspiaGladiadores);
		botonMercadoGladiador = (Button) findViewById(R.id.botonEspiaGladiadores);
		botonMercadoGladiador.setOnClickListener(this);

		// Obtengo a los gladiadores del mercado
		listaGladiadores = Ciudad.getInstance().getListaLudus().get(1)
				.getGladiadores();
		for (int i = 0; i < listaGladiadores.size(); i++) {
			String imagen = listaGladiadores.get(i).getSprite();
			String nombre = imagen.substring(11, imagen.length());

			int idDrawable = getResources().getIdentifier(nombre, "drawable",
					this.getPackageName());
			spritesMercado.add(idDrawable);

		}

		info = new ImageAdapter(this, spritesMercado);
		miGaleriaMercado.setAdapter(new ImageAdapter(this, spritesMercado));
		miGaleriaMercado
				.setOnItemSelectedListener(new OnItemSelectedListener() {
					public void onItemSelected(AdapterView<?> parent, View v,
							int posicion, long id) {
						resturarImagenView(posicion);
					}

					public void onNothingSelected(AdapterView<?> parent) {
					}

				});

	}

	public void setCaracteristicasListView(int posicion) {

		if (posicion != -1) {
			Gladiador g = listaGladiadores.get(posicion);
			valorMercado = new String[] { "Nombre : " + g.getName(),
					"Tribu : " + g.getTribu(), "Corpulencia : " + g.getBody(),
					"Vida : " + g.getHp() + "/" + g.getHptotal(), "Fuerza : " + g.getStr(),
					"Destreza : " + g.getDex(), "Agilidad : " + g.getAgi(),
					"Resistencia : " + g.getRes(),
					"Ambidiestro : " + g.getAmbidex(),
					"Habilidad Espada : " + g.getHabEsp1(),
					"Habilidad Lanza : " + g.getHabSpear1(),
					"Habilidad Hacha : " + g.getHabBlunt1(),
					"Habilidad Escudo : " + g.getHabEsc(),
					"Habilidad Cuerpo a Cuerpo : " + g.getHabHand2() };
		} else {
			valorMercado = new String[] { "Nombre : ", "Tribu : ",
					"Corpulencia : ", "Vida: ", "Fuerza: ", "Destreza : ",
					"Agilidad : ", "Resistencia : ", "Ambidiestro : ",
					"Habilidad Espada : ", "Habilidad Lanza : ",
					"Habilidad Hacha : ", "Habilidad Escudo : ",
					"Habilidad Cuerpo a Cuerpo : " };
		}
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
				android.R.layout.simple_list_item_1, android.R.id.text1,
				valorMercado);
		listaMercado.setAdapter(adapter);
	}

	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.botonEspiaGladiadores:
			Intent intent = new Intent();
			intent.setClass(getApplicationContext(),
					ActivityEspiarEscuela.class);
			startActivity(intent);
			finish();
			break;
		}
	}

	public int getNumeroGladiador() {
		return numeroGladiador;
	}

	public void setNumeroGladiador(int numeroGladiador) {
		this.numeroGladiador = numeroGladiador;
	}

	// Pintamos lo nuevo
	public void resturarImagenView(int posicion) {
		if (!spritesMercado.isEmpty()) {
			imagenGladiadorMercado.setImageResource(spritesMercado
					.get(posicion));
			setNumeroGladiador(posicion);
			setCaracteristicasListView(posicion);
		} else {
			setCaracteristicasListView(-1);
			imagenGladiadorMercado
					.setImageResource(R.drawable.sin_imagen_galeria);
		}
	}

	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if (keyCode == KeyEvent.KEYCODE_BACK) {

			Intent intent = new Intent();
			intent.setClass(getApplicationContext(),
					ActivityMenuPrincipal.class);
			if (ActivityMenuPrincipal.isHayNotificacion())
				intent.putExtra("mostrarEvento", true);
			else
				intent.putExtra("mostrarEvento", false);
			startActivity(intent);
			finish();
		}

		return true;
	}

}
